﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.DirectoryServices;
using MJM.RPP.EntidadesNegocio;
using MJM.SPP.EntidadesNegocio;
using MJM.SCA.EntidadesNegocio;
using MJM.Principal;

namespace wRegPadron.frmOpciones
{
    public partial class ucAgenda : System.Web.UI.UserControl
    {
        private static String usuario;
        protected static int IdArea=0;
        protected static int IdDependencia=0;
        protected static List<PersonaTramiteEN> lstPersonaTramiteEN = new List<PersonaTramiteEN>();
        protected static String DependenciaSelect="";

        public void SetAreaPersona(int id)
        {
            IdArea = id;
        }

        private void InsertarLog(String prm2, String prm3)
        {
            string ipusuario = System.Web.HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];
            if (ipusuario == null)
                ipusuario = "";

            LogTramiteEN objLogTramiteEN = new LogTramiteEN();
            string mes, dia;
            if (DateTime.Now.Month < 10)
                mes = "0" + DateTime.Now.Month.ToString();
            else mes = DateTime.Now.Month.ToString();

            if (DateTime.Now.Day < 10)
                dia = "0" + DateTime.Now.Day.ToString();
            else dia = DateTime.Now.Day.ToString();
            objLogTramiteEN.LOGAW_chFECMOD = DateTime.Now.Year.ToString() + mes + dia;
            objLogTramiteEN.LOGAW_chFECREG = DateTime.Now.ToShortDateString();
            objLogTramiteEN.LOGAW_chHORREG = DateTime.Now.ToShortTimeString();
            objLogTramiteEN.LOGAW_chIPCLIEN = ipusuario;
            objLogTramiteEN.LOGAW_chPARDOS = prm2;
            objLogTramiteEN.LOGAW_chPARUNO = usuario;
            objLogTramiteEN.LOGAW_chPARTRE = prm3;
            objLogTramiteEN.LOGAW_inHORMOD = DateTime.Now.Hour;
            objLogTramiteEN.LOGAW_chNOMAPL = "Padrón";
            MediadorCN.GetLogTramite().Insertar(objLogTramiteEN);
        }

        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                SubOpcionEN objSubOpcionEN = MediadorCN.GetSubOpcion().ObtenerTexto("MenuAgendaMunicipal");
                lblTitulo.Text = objSubOpcionEN.SUBOPT_chNOMSOP;
                lblDescripcion.Text = objSubOpcionEN.SUBOPT_chDESSOP;
                lstPersonaTramiteEN = MediadorCN.GetPersonaTramite().Listar("", "", IdArea);
                PersonaTramiteEN objpersona = new PersonaTramiteEN();
                objpersona.NombrePersona = "";
                objpersona.Usuario = "0";
                usuario = Session["usuario"].ToString();
                lstPersonaTramiteEN.Insert(0, objpersona);
                ddlResponsable.DataSource = lstPersonaTramiteEN;
                ddlResponsable.DataTextField = "NombrePersona";
                ddlResponsable.DataValueField = "IDPersona";
                ddlResponsable.DataBind();
                gvDependencias.DataSource = MediadorCN.GetAgendaMunicipal().ListarDependencia(IdArea);
                gvDependencias.DataBind();
                pPanelResponsables.Visible = false;
            }
        }

        protected void gvDependencias_RowCommand(object sender, GridViewCommandEventArgs e)
        {
            lblErrorDependencia.Text = "";
            lblErrorRegistro.Text = "";
            int index = -1;
            index = Convert.ToInt32(e.CommandArgument);
            GridViewRow row = gvDependencias.Rows[index];
            IdDependencia = Convert.ToInt32(Server.HtmlDecode(row.Cells[0].Text));
            if (e.CommandName == "Seleccionar")
            {
                List<ResponsableAgendaEN> lstResponsable = MediadorCN.GetResponsableAgenda().ListarDependencia(IdDependencia);
                pPanelResponsables.Visible = true;
                DependenciaSelect = Server.HtmlDecode(row.Cells[1].Text).ToString();
                InsertarLog("Directorio telefónico", "Selección de la dependencia " + DependenciaSelect);
                if (lstResponsable.Count > 0)
                {                   
                    lblSeleccion.Text = "Responsables de la dependencia " + DependenciaSelect+": ";
                }
                else
                {
                    lblSeleccion.Text = "No se han registrado reponsables en la dependencia " + DependenciaSelect;
                }
                gvResponsables.DataSource = lstResponsable;
                gvResponsables.DataBind();
                
            }
            else
            {
                pPanelResponsables.Visible = false;
            }

        }

        protected void btnAceptar_Click(object sender, EventArgs e)
        {
            
            AgendaMunicipalEN objAgendaMunicipalEN = new AgendaMunicipalEN();
            objAgendaMunicipalEN.DEPARE_chNOMDEP = txtDependencia.Text;            
            objAgendaMunicipalEN.OFIC_P_inCODOFI = IdArea;
            int value=MediadorCN.GetAgendaMunicipal().Insertar(objAgendaMunicipalEN);
            if (value > 0)
            {
                gvDependencias.DataSource = MediadorCN.GetAgendaMunicipal().ListarDependencia(IdArea);
                gvDependencias.DataBind();
                lblErrorRegistro.Text = "";
                txtDependencia.Text = "";
                lblErrorDependencia.Text = "El registro se completó satisfactoriamente.";
            }
            else
            {
                lblErrorDependencia.Text = "El registro no se pudo completar.";
                lblErrorRegistro.Text = "";
                txtDependencia.Text = "";
            }
           
        }

        protected void btnGuardar_Click(object sender, EventArgs e)
        {
            ResponsableAgendaEN objResponsableAgendaEN = new ResponsableAgendaEN();
            objResponsableAgendaEN.RESDEP_chANERES = txtAnexo.Text;
            objResponsableAgendaEN.RESDEP_chDIRRES = txtDirecto.Text;
            objResponsableAgendaEN.RESDEP_chRPCRES = txtRPC.Text;
            objResponsableAgendaEN.PAD_P_chIDPER = Convert.ToInt32(ddlResponsable.SelectedValue);
            objResponsableAgendaEN.DEPARE_P_inID = IdDependencia;
            int codigo= MediadorCN.GetResponsableAgenda().Insertar(objResponsableAgendaEN);
            if (codigo > 0)
            {
                List<ResponsableAgendaEN> lstResponsable = MediadorCN.GetResponsableAgenda().ListarDependencia(IdDependencia);
                pPanelResponsables.Visible = true;
                lblSeleccion.Text = "Responsables de la dependencia " + DependenciaSelect + ": ";              
                gvResponsables.DataSource = lstResponsable;
                gvResponsables.DataBind();

                lblErrorRegistro.Text = "El registro se completó satisfactoriamente.";
                lblErrorDependencia.Text = "";
                txtAnexo.Text="";
                txtDirecto.Text = "";
                txtRPC.Text = "";
                ddlResponsable.SelectedIndex = 0;
            }
            else
            {
                lblErrorDependencia.Text = "";
                lblErrorRegistro.Text = "El registro no se pudo completar.";
                lblErrorDependencia.Text = "";
                txtAnexo.Text = "";
                txtDirecto.Text = "";
                txtRPC.Text = "";
                ddlResponsable.SelectedIndex = 0;
            }
        }

        protected void gvDependencias_SelectedIndexChanged(object sender, EventArgs e)
        {

        }
    }
}